package java课题设计.工具类;
import java.util.*;

//该类用于生成随机ID以及生成各种随机数据的逻辑以及提供方法
public class RandomID {
int id=2023000000;
HashSet<Integer> setid =new HashSet<>();
HashSet<Integer> setgrade1 =new HashSet<>();
Random random=new Random();
public int getid(){
int studentid = id + random.nextInt(1000000);
//使用集合HashSet中没有重复元素的特点来生成唯一不重复的学号,并且支持同时生成十万组学号数据
while(!setid.add(studentid)){
studentid = id + random.nextInt(1000000);
}
return studentid;
}
    //随机生成符合正态分布的成绩
    public int getgrade(){
        double mean = 80; // 均值
        double std = 20; // 标准差
        int min = 0; // 最小值
        int max = 100; // 最大值
        double value = random.nextGaussian() * std + mean;
        while (value < min || value > max) {
            value = random.nextGaussian() * std + mean;
        }
        return (int)value;
    }
    public String getname(){
        int a=(int)'a';
        int b=(int)'A';
        int namelength=random.nextInt(12);
        char[] c=new char[namelength];
        for(int i = 0; i < namelength; i++) {
            int l = random.nextInt(2);
            if(l == 1) {
                a = (int)'a' + random.nextInt(26);
                c[i] = (char)a;
            } else if(l == 0) {
                b = (int)'A' + random.nextInt(26);
                c[i] = (char)b;
            }
        }
        String name = String.valueOf(c);
        return name;
    }
}